package io.gitee.yxsnake.embark.web.core.context.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.Set;

/**
 * @author: snake
 * @create-time: 2024-09-29
 * @description:
 * @version: 1.0
 */
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserInfoDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = -4077856079369852602L;
    /**
     * 用户 ID
     */
    private String userId;
    /**
     * 昵称
     */
    private String nickname;
    /**
     * 真实姓名
     */
    private String realName;
    /**
     * 手机号码
     */
    private String phone;
    /**
     * 账号
     */
    private String account;
    /**
     * 账号 ID
     */
    private String accountId;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 性别
     */
    private Integer gender;
    /**
     * 登录方式
     */
    private Integer loginWay;
    /**
     * 账号类型
     */
    private Integer accountType;
    /**
     * 渠道
     */
    private String channelType;
    /**
     * 是否超级管理员
     */
    private Integer isSupperAdmin;
    /**
     * 租户 ID
     */
    private String tenantId;
    /**
     * 角色 ID集合
     */
    private Set<String> roleIds;
    /**
     * 角色编码集合
     */
    private Set<String> roleCodes;
    /**
     * 权限集合
     */
    private Set<String> permissionIds;

}
